package com.ry.hystrix.service;

import com.ry.hystrix.config.HostServiceFallbackFactory;
import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;

/**
 * @FeignClient 指定名称调用服务端，fallbackFactory 参数指定在服务端不可用 或 发生异常时 指定响应结果
 * 使用fallbackFactory 好处为 可以获取异常信息，fallbackFactory指定的class 必须实现FallbackFactory<?>可指定接口类型
 * 并重写ConsumerHystrixService 接口中的所有方法。哪个方法有异常 就会执行那个 方法的fallbackFactory 实现方法
 */
@FeignClient(value = "service-provide", fallbackFactory = HostServiceFallbackFactory.class)
public interface ConsumerHystrixService {

    @GetMapping("/test/testHello")
    String testFeignHystrix();
}
